package com.cloudbroker.bcs.csvc.uc.api.t2service;

import com.cloudbroker.bcs.common.entity.HSBCPSBackVO;
import com.cloudbroker.bcs.csvc.uc.api.vo.request.*;
import com.cloudbroker.bcs.csvc.uc.api.vo.request.base.UCForm;
import com.cloudbroker.bcs.csvc.uc.api.vo.response.*;
import com.cloudbroker.bcs.csvc.uc.api.vo.response.base.UCBackVo;
import com.hundsun.jresplus.remoting.impl.annotation.Service;
import com.hundsun.jresplus.remoting.impl.annotation.ServiceModule;
import com.hundsun.jresplus.remoting.impl.annotation.ServiceParam;

@ServiceModule
public interface UCT2Service {

    /**
     * 用户中心注册
     * @param param
     * @return
     */
    @Service(functionId = "5070401" , desc = "用户注册")
    public UIDBackVo funcRegister(@ServiceParam("param") FuncRegisterForm param);
    
    /**
     * 用户中心登录
     * @param param
     * @return
     */
    @Service(functionId = "5070402" , desc = "用户登录")
    public UIDBackVo funcLogin(@ServiceParam("param") FuncLoginForm param);
    
    /**
     * 用户authcode获取
     * @param param
     * @return
     */
    @Service(functionId = "5070403" , desc = "用户authcode获取")
    public AuthCodeBackVo funcAuthCodeGet(@ServiceParam("param") FuncAuthCodeForm param);
    
    /**
     * 用户authcode校验（authcode登录）
     * @param param
     * @return
     */
    @Service(functionId = "5070404" , desc = "用户authcode校验（authcode登录）")
    public UCBackVo funcAuthCodeLogin(@ServiceParam("param") FuncCodeCheckForm param);
    
    /**
     * 用户数据更新
     * @param param
     * @return
     */
    @Service(functionId = "5070405" , desc = "用户数据更新")
    public HSBCPSBackVO funcUserUpdate(@ServiceParam("param") FuncUserUpdateForm param);
    
    /**
     * 用户数据获取
     * @param param
     * @return
     */
    @Service(functionId = "5070406" , desc = "用户数据获取")
    public UserInfoBackVo funcUserinfo(@ServiceParam("param") UCForm param);
    
    /**
     * 用户token检验
     * @param param
     * @return
     */
    @Service(functionId = "5070407" , desc = "用户token检验")
    public UserInfoBackVo funcUserTokenCheck(@ServiceParam("param") UCForm param);
    
    /**
     * 用户登出
     * @param param
     * @return
     */
    @Service(functionId = "5070408" , desc = "用户登出")
    public HSBCPSBackVO funcLogout(@ServiceParam("param") UCForm param);
    
    /**
     * 用户密码修改
     * @param param
     * @return
     */
    @Service(functionId = "5070409" , desc = "用户密码修改")
    public HSBCPSBackVO funcPasswordReset(@ServiceParam("param") FuncPasswordResetForm param);
    
    /**
     * 用户注册登录
     * @param param
     * @return
     */
    @Service(functionId = "5070410" , desc = "用户注册登录")
    public UIDBackVo funcRegisterAndLogin(@ServiceParam("param") FuncRegisterAndLoginForm param);
    
    /**
     * 用户基本数据获取
     * @param param
     * @return
     */
    @Service(functionId = "5070411" , desc = "用户基本数据获取")
    public UserInfoBackVo funcUserBasicInfo(@ServiceParam("param") FuncLoginForm param);
    
    /**
     * 检测用户是否注册
     * @param param
     * @return
     */
    @Service(functionId = "5070412" , desc = "检测用户是否注册")
    public CheckRegisterBackVo funcCheckRegister(@ServiceParam("param") FuncLoginForm param);

    /**
     * 投顾信息获取
     * @param param
     * @return
     */
    @Service(functionId = "5070424" , desc = "投顾信息获取")
    public AdviserInfoVo funcAdviserGet(FuncAdviserForm param);

    /**
     * 是否是资金账户
     * @param param
     * @return
     */
    @Service(functionId = "5070423" , desc = "是否是资金账户")
    public CustomerAccountType funcIsCapitalAccount(UCForm param);
}
